import { UsePlugin } from '../utils/usePlugin';
import { Plugin } from '../plugins/Plugin';

export abstract class Builder<Props = {}, State = {}> {
  protected readonly plugins: UsePlugin<Props, State> = new UsePlugin();

  public/*protected*/ getPlugins(): Plugin[] {
    return this.plugins.getPlugins();
  }

  public/*protected*/ abstract toJSON(): object;
}
